package cn.codeartist.springboot.component.dynamic.druid;

/**
 * 目的: 动态数据源的操作
 *
 * @author 艾江南
 * @date 2019/4/2
 */
public class DynamicDataSourceHolder {

    /**
     * 线程安全的本地线程类
     */
    final private static ThreadLocal<String> DB_TYPE_THREAD_LOCAL = new ThreadLocal<>();

    /**
     * 数据库类型
     */
    final static public String DB_MASTER = "master";
    final static public String DB_SLAVE = "slave";

    /**
     * 获取数据源
     *
     * @return 数据库类型
     */
    public static String getDbType() {
        return DB_TYPE_THREAD_LOCAL.get();
    }

    /**
     * 注入线程的数据源
     *
     * @param dbType 数据源
     */
    public static void setDbType(String dbType) {
        DB_TYPE_THREAD_LOCAL.set(dbType);
    }

    /**
     * 清理连接
     */
    public static void resetDbType() {
        DB_TYPE_THREAD_LOCAL.remove();
    }
}